package com.chenfan.mcn.model.vo;

import cn.afterturn.easypoi.excel.annotation.Excel;
import com.chenfan.mcn.enums.ArchivingStatusEnum;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;
import java.util.Objects;

/**
 * @Author liuyang
 * @Date 2021/3/1
 * @Time 14:41
 * @Version V1.0
 **/
@Data
public class PurchaseVO {

    /**
     * 采购合同id
     */
    private Long id;

    /**
     * 采购合同编号
     */
    @Excel(name = "采购合同编号")
    private String contractCode;

    /**
     * 单据状态:0_待提交, 1_审批中, 2_审批通过, 3_审批拒绝, 4_已撤回, 9_作废
     */
    @Excel(name = "单据状态", replace = {"待提交_0", "审批中_1", "审批通过_2", "审批拒绝_3", "已撤回_4", "已作废_9"})
    private Integer purchaseStatus;

    /**
     * 对方公司名称
     */
    @Excel(name = "对方公司名称")
    private String oppositeCompanyName;

    /**
     * 我司签约主体（取【公司管理】的数据）
     */
    @Excel(name = "我司签约主体")
    private String contractingParties;

    /**
     * 收入合同编号
     */
    @Excel(name = "收入合同编号")
    private String incomeContractCode;

    /**
     * 采购合同金额
     */
    @Excel(name = "采购合同金额")
    private BigDecimal contractAmount;

    /**
     * 合同签约日期
     */
    @Excel(name = "合同签约日期", format = "yyyy/MM/dd HH:mm:ss")
    private Date signingDate;

    /**
     * 合作内容简介
     */
    @Excel(name = "合作内容简介")
    private String contentValidaty;

    /**
     * 合同附件
     */
    private String enclosure;

    /**
     * 备注
     */
    @Excel(name = "备注")
    private String remark;

    /**
     * 创建人id
     */
    private Long createBy;

    /**
     * 创建人
     */
    @Excel(name = "创建人名称")
    private String createName;

    /**
     * 归档状态
     */
    @Excel(name = "归档状态", replace = {"待盖章_0", "待归档_1", "已归档_2"})
    private Integer archivingStatus;

    /**
     * 归档编号
     */
    @Excel(name = "归档编号")
    private String archivingCode;

    /**
     * 创建时间
     */
    @Excel(name = "创建时间", format = "yyyy/MM/dd HH:mm:ss")
    private Date createDate;

    /**
     * 流程id
     */
    private Long flowId;

    /**
     * 流程节点名称
     */
    private String flowStatusName;

    /**
     * 归档状态名称
     */
    private String archivingStatusName;

    public String getArchivingStatusName() {
        if (Objects.nonNull(getArchivingStatus())) {
            return ArchivingStatusEnum.getStatusName(getArchivingStatus());
        }
        return null;
    }
}
